package Helpers;

import java.lang.reflect.ParameterizedType;

/**
 * Для некоторого класса определяет каким классом он был параметризован.
 */
public class ReflectionUtils {

	/**
	 * Для некоторого класса определяет каким классом он был параметризован.
	 * 
	 * @param actualClass
	 *            анализируемый класс
	 * @param parameterIndex
	 *            номер параметра
	 * @return класс, являющийся параметром с индексом parameterIndex в
	 *         genericClass
	 */
	public static Class getGenericParameterClass(Class actualClass,
			int parameterIndex) {
		return (Class) ((ParameterizedType) actualClass.getGenericSuperclass())
				.getActualTypeArguments()[parameterIndex];
	}
}